package CreationPattern.Prototype;

import lombok.Data;

import java.util.Date;

/**
 * @Classname : Sheep
 * @Description : 羊类
 * @Author : chentianyu
 * @Date 2023/1/23 22:09
 */

@Data
public class Sheep {

    protected int code;
    protected String name;
    protected Date birthday;

    public Sheep() {
        System.out.println("Sheep类[无参]构造器执行");
    }
    public Sheep(String name) {
        System.out.println("Sheep类[有参]构造器执行");
        this.name = name;
        birthday = new Date();
    }

    /**
     * 显示信息
     */
    public void info(String note) {
        System.out.println(new StringBuilder()
                .append("【")
                .append(note)
                .append("】这只羊叫")
                .append(this.name)
                .append("，编号为 ")
                .append(this.code)
                .append("，生于 ")
                .append(this.birthday));
    }

    /**
     * 比较信息
     *
     * @param sheep
     * @return
     */
    public String compare(Sheep sheep) {
        StringBuilder str = new StringBuilder();
        if (this.getCode() == sheep.getCode())
            str.append("基本类型 code 相同 | ");
        else
            str.append("基本类型 code 不同 | ");

        if (this.getName() == sheep.getName())
            str.append("字符串 name 相同 | ");
        else
            str.append("字符串 name 不同 | ");

        if (this.getBirthday() == sheep.getBirthday())
            str.append("引用类型 birthday 相同");
        else
            str.append("引用类型 birthday 不同");
        return str.toString();
    }
}
